As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option is an information handling system. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes. Because technology and information handling needs and requirements vary between different applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software resources that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Virtualization of resources in an information handling system is a process whereby the physical characteristics of a particular resource are made to appear differently by a software agent. For example, in platform virtualization, a host program creates a simulated computer environment, called a virtual machine. The virtual machine permits guest software to run on an information handling system as if the guest software were being run on a separate information handling system. Typically, several virtual machines run simultaneously on a single information handling system, such as when several operating systems are running on the same information handling system. Different virtual machines (e.g., different operating systems) may use Input/Output (I/O) devices differently, and so virtualization also involves I/O virtualization. For example, a single hard disk drive can be partitioned into several virtual disks, each utilizing a different file system.
The Peripheral Component Interconnect-Express (PCIe) standard for connecting resources to an information handling system includes a Single Root I/O Virtualization (SR-IOV) mechanism, whereby a particular PCIe device can be accessed by several virtual machines on the same information handling system. An SR-IOV enabled PCIe device includes a physical function that is directly accessible to the information handling system. The SR-IOV enabled PCIe device also includes the ability to create one or more virtual functions that can be associated with different virtual machines. In this way, a single I/O resource can be accessed by the different virtual machines without creating contention within the I/O resource.
A server-based system typically includes several information handling systems and shared data storage resources. While the PCIe standard is a desirable way to couple information handling systems to data storage resources, the SR-IOV mechanism does not permit more than one information handling system to access a data storage resource. That is, SR-IOV does not permit sharing of resources between different information handling systems.
The use of the same reference symbols in different drawings indicates similar or identical items.